#include<stdio.h>
#include<string.h>
#include<algorithm>
#define sc scanf
#define pr printf
using namespace std;
int judge[107][107];
typedef struct num{
	int data;
}Num;
Num x[107];
bool cmpt(Num a,Num b){
	return a.data>b.data;
}
bool cmp(Num a,Num b){
	if(judge[a.data][b.data]){
		return a.data<b.data;
	}
	return a.data>b.data;
}
int n,m;
int main()
{
	int i,j;
	while(1){
		sc("%d%d",&n,&m);getchar();
		if(n==0&&m==0)	break;
		memset(judge,0,sizeof(judge));
		for(i=0;i<107;i++)
			x[i].data=i+1;
		sort(x,x+n,cmpt);
		while(m--){
			sc("%d%d",&i,&j);getchar();
			judge[i][j]=1;
		}
		sort(x,x+n,cmp);
		for(i=0;i<n;i++){
			pr("%d",x[i].data);
			if(i!=n-1)	pr(" ");
		}
		pr("\n");
	}
	return 0;
}
